/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package persistencia;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Date;
import modelo.Solicitud;

/**
 *
 * @author alumneDAM
 */
public class PersiSolicitud {
      private ConexionBD conex = new ConexionBD();
    private Connection con;

     public String horaToSQL(Date hora){
        String salida;
         long horaPartida = hora.getTime();
        java.sql.Date sqlDate = new java.sql.Date(horaPartida);
        java.sql.Time sqlTime = new java.sql.Time(horaPartida);
        salida=" TO_DATE('" + sqlDate+" "+sqlTime
                + "','yyyy-mm-dd hh24:mi:ss') ";
        return salida;
    }
    //Crea el registro Solicitud
    public void crearSolicitud(Solicitud solicitud) {
        try {
            this.conex.conexion();
            this.con = conex.getCon();
            PreparedStatement ps;
            String sql = "INSERT INTO solicitud VALUES (1,'" 
                    + solicitud.getId_jugador1()
                    + "','" + solicitud.getId_jugador2()+ "','" 
                    + solicitud.getId_partida()+"',"
                    +horaToSQL(solicitud.getDate())+")";
            System.out.println("SQL="+sql);

            ps = con.prepareStatement(sql);
            ps.execute();
            ps.close();

            conex.cerrarConexion();
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }
    }

    public void modificaSolicitud (Solicitud solicitud) {
        try {
            this.conex.conexion();
            this.con = conex.getCon();
            PreparedStatement ps;
            

            String sql = "UPDATE solicitud SET Id_jugador1='"
                    + solicitud.getId_jugador1()+ "', Id_jugador2='" 
                    + solicitud.getId_jugador2()+ "',id_partida='" 
                    + solicitud.getId_partida()+ "', "
                    + "Fecha= "+horaToSQL(solicitud.getDate())
                     +" WHERE ID_SOLICITUD='"+solicitud.getId_solicitud()+"'";
            System.out.println("sql= "+sql);
            ps = con.prepareStatement(sql);
            ps.execute();
            ps.close();

            conex.cerrarConexion();
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }
    }
    
    public ArrayList<Solicitud> cargarSolicitudes(String jugador) {
        ArrayList<Solicitud> solicitudes = new ArrayList();
        Solicitud p;

        try {
            this.conex.conexion();
            this.con = conex.getCon();

            Statement s = con.createStatement();
            ResultSet rs;

            rs = s.executeQuery("SELECT * FROM SOLICITUD WHERE ID_JUGADOR2 LIKE '" + jugador + "'");

            while (rs.next()) {
                p = new Solicitud(rs.getInt(1), rs.getString(2), rs.getString(3),  rs.getInt(4), rs.getTimestamp(5));
                solicitudes.add(p);
            }
            s.close();
            rs.close();
            conex.cerrarConexion();

        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        } finally {
            return solicitudes;
        }
    }
     public void eliminaSolicitud (int idSolicitud) {
        try {
            this.conex.conexion();
            this.con = conex.getCon();
            PreparedStatement ps;
            

            String sql = "DELETE FROM solicitud WHERE  ID_SOLICITUD='"+idSolicitud+"'";

            ps = con.prepareStatement(sql);
            ps.execute();
            ps.close();

            conex.cerrarConexion();
        } catch (SQLException ex) {
            System.out.println(ex.getMessage());
        }
    }
}
